package 动态规划.贪心算法;

import java.util.Arrays;
import java.util.Scanner;

/*
公司组织团建活动，到某漂流圣地漂流，现有如下情况：
员工各自体重不一，第 i 个人的体重为 people[i]，每艘漂流船可以承载的最大重量为 limit。
每艘船最多可同时载两人，但条件是这些人的重量之和最多为 limit。
为节省开支，麻烦帮忙计算出载到每一个人所需的最小船只数(保证每个人都能被船载)。*/
public class 船载 {
	static int count = 0;
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		String str = sc.nextLine();
		String[] people = str.split(" ");
		int limit = sc.nextInt();
		Arrays.sort(people);
		System.out.println(Arrays.toString(people) + " " + limit);
		System.out.println(num(people, limit,0));
	}

	private static int num(String[] people, int limit,int index) {
		// TODO Auto-generated method stub

		for(int i=0;i<people.length;i++,index++) {
			int min = Integer.parseInt(people[i]);
			int max = Integer.parseInt(people[people.length-1-index]);
			if(i==people.length-1-index) {
				count++;
				break;
			}
			if(i==people.length-1-index+1) {
				break;
			}
			if(min+max <= limit) {
				count++;
			}
			else {

				count++;
				i--;//初始位置不变

			}
		}
		return count;
	}

}
